using UnityEngine;
using System.Collections;

public class rotateToCursor : MonoBehaviour {
	
	private Transform gunAndShield;
	// Use this for initialization
	void Start () {
		gunAndShield = transform;
	}
	
	// Update is called once per frame
	void Update () {
		 // Generate a plane that intersects the transform's position with an upwards normal.
		Plane playerPlane = new Plane(Vector3.up, transform.position);
		 
		// Generate a ray from the cursor position
		Ray ray = Camera.main.ScreenPointToRay (Input.mousePosition);
		 
		// Determine the point where the cursor ray intersects the plane.
		// This will be the point that the object must look towards to be looking at the mouse.
		// Raycasting to a Plane object only gives us a distance, so we'll have to take the distance,
		// then find the point along that ray that meets that distance. This will be the point
		// to look at.
		float hitdist = 0.0f;
		// If the ray is parallel to the plane, Raycast will return false.
		if (playerPlane.Raycast (ray, out hitdist)) {
			// Get the point along the ray that hits the calculated distance.
			Vector3 targetPoint = ray.GetPoint(hitdist);
			// Determine the target rotation. This is the rotation if the transform looks at the target point.
			Quaternion targetRotation = Quaternion.LookRotation(targetPoint - transform.position);
			
			Debug.Log("current Euler angle: " + transform.rotation.eulerAngles.ToString() + "target Euler angle: "
				+ targetRotation.eulerAngles.ToString());
//			float curRotate;
//			Vector3 hallow;
//			transform.rotation.ToAngleAxis(out curRotate,out hallow);
//			Debug.Log(curRotate + "axis: " +hallow.ToString() + "euler angles: "
//				+transform.rotation.eulerAngles.ToString());

			// Smoothly rotate towards the target point.
			//transform.rotation = Quaternion.Slerp(transform.rotation, targetRotation, speed * Time.deltaTime); // WITH SPEED
			transform.rotation = Quaternion.Slerp(transform.rotation, targetRotation, 1); // WITHOUT SPEED!!!
			//gunAndShield.RotateAround(transform.parent.transform.position, Vector3.up, 50 * Time.deltaTime);
		}
	}
}
